package store

import (
	"cgs-server/server/cgs/app/models"
	v1 "cgs-server/server/cgs/app/models/v1"
	"cgs-server/server/cgs/app/models/vo"
	"cgs-server/server/model"
)

type WorksheetRowsStore interface {
	Save(wr *models.WorksheetRow, user *model.User, opts v1.CreateOptions) error

	Get(wr *models.WorksheetRow, user *model.User, opts v1.GetOptions) (*vo.WorksheetRow, error)

	Update(wr *models.WorksheetRow, user *model.User, opts v1.UpdateOptions) error

	Delete(wr *models.WorksheetRow, user *model.User, opts v1.DeleteOptions) error

	List(wr *models.WorksheetRow, user *model.User, opts v1.ListOptions) (*vo.WorksheetRowList, error)

	Count(wr *models.WorksheetRow, user *model.User, opts v1.CountOptions) (int64, error)

	BatchAddRow(wr []*models.WorksheetRow, user *model.User, opts v1.CreateOptions) error

	BatchUpdateRow(wr *models.WorksheetRow, user *model.User, opts v1.UpdateOptions) error

	BatchDeleteRow(wr *models.WorksheetRow, user *model.User, opts v1.DeleteOptions) error
}
